
// 在TS语法中 定义了 class 不仅为当前项目的新对象构造
// 同时也是 对当前环境中类型的扩展
//  TS 中每一个 class 对象 都具有一个固定的执行方法constructor
//  该方法时用于在TS语法中描述当前class的构造函数
//  在构造函数中 this 指向于当前class对应的对象实例
//  如果构造函数中完成了 对对象的属性赋值操作，导致class中定义的默认值失效
class UserD {
    // name:string = "tom";
    name:string;

    // constructor(name?:string){
    //     console.log("构造方法");
    //     this.name = name;
    // }
    constructor(name:string="tom"){
        console.log("构造方法");
        this.name = name;
    }

    show(arg?:string):void{
        console.log("show:",arg);
    }
}
var u1:UserD = new UserD();
console.log(u1 instanceof UserD);
console.log(u1.name);
u1.show("方法");

var u2:UserD = new UserD("jack");